home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt32s1.arc / GETCAPTU.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1985-11-13  |  5.6 KB  |  154 lines

  1. (*----------------------------------------------------------------------*)
  2. (*          Get_Capture_File -- Get session capture file name           *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. OVERLAY PROCEDURE Get_Capture_File( Capture_FName : AnyStr;
  6.                                     Capture_Type  : AnyStr   );
  7.  
  8. (*----------------------------------------------------------------------*)
  9. (*                                                                      *)
  10. (*     Procedure:  Get_Capture_File                                     *)
  11. (*                                                                      *)
  12. (*     Purpose:    Opens capture file                                   *)
  13. (*                                                                      *)
  14. (*     Calling Sequence:                                                *)
  15. (*                                                                      *)
  16. (*        Get_Capture_File( Capture_FName : AnyStr;                     *)
  17. (*                          Capture_Type  : AnyStr );                   *)
  18. (*                                                                      *)
  19. (*           Capture_FName --- name of capture file; prompted for       *)
  20. (*                             if null.                                 *)
  21. (*           Capture_Type  --- type of capture to perform.              *)
  22. (*                             E = edited, U = unedited.                *)
  23. (*                                                                      *)
  24. (*----------------------------------------------------------------------*)
  25.  
  26. VAR
  27.    OK_File           : BOOLEAN;
  28.    File_Exists       : BOOLEAN;
  29.    Name_Given        : BOOLEAN;
  30.  
  31. BEGIN (* Get_Capture_File *)
  32.  
  33.    Save_Screen( Saved_Screen );
  34.    Draw_Menu_Frame( 10, 10, 70, 16, Menu_Frame_Color,
  35.                     Menu_Text_Color, 'Capture session' );
  36.  
  37.                                    (* If capture mode ON, close current  *)
  38.                                    (* capture file and turn capture mode *)
  39.                                    (* OFF.                               *)
  40.    IF Capture_On THEN
  41.       BEGIN
  42.             (*$I-*)
  43.          CLOSE( Capture_File );
  44.             (*$I+*)
  45.          Capture_On := FALSE;
  46.          WRITELN;
  47.          WRITELN('*** Capturing of session to ', Capture_File_Name,
  48.                  ' terminated.');
  49.          DELAY( Two_Second_Delay );
  50.       END
  51.    ELSE                            (* If capture mode OFF, then get name *)
  52.                                    (* of file to capture to, and turn on *)
  53.                                    (* capture mode.                      *)
  54.  
  55.       BEGIN  (* Capture mode was Off *)
  56.  
  57.          Capture_File_Name := Capture_FName;
  58.  
  59.          OK_File     := FALSE;
  60.          Name_Given  := LENGTH( Capture_File_Name ) > 0;
  61.  
  62.          REPEAT
  63.  
  64.             GoToXY( 1 , 1 );
  65.             ClrEol;
  66.  
  67.             WRITE('File name to capture session to ? ');
  68.  
  69.             IF ( NOT Name_Given ) THEN
  70.                READLN( Capture_File_Name )
  71.             ELSE
  72.                WRITELN( Capture_File_Name );
  73.             DELAY  ( One_Second_Delay  );
  74.  
  75.             ASSIGN( Capture_File , Capture_File_Name );
  76.                (*$I-*)
  77.             RESET( Capture_File );
  78.                (*$I+*)
  79.  
  80.             IF Int24Result = 0 THEN
  81.                BEGIN
  82.  
  83.                   IF ( NOT Name_Given ) THEN
  84.                      OK_File := YesNo('File ' + Capture_File_Name +
  85.                                       ' already exists, append to it (Y/N) ? ')
  86.                   ELSE
  87.                      OK_File := TRUE;
  88.  
  89.                   File_Exists := TRUE;
  90.  
  91.                      (*$I-*)
  92.                   CLOSE( Capture_File );
  93.                      (*$I+*)
  94.  
  95.                END
  96.             ELSE
  97.                BEGIN
  98.                   OK_File     := TRUE;
  99.                   File_Exists := FALSE;
  100.                END;
  101.  
  102.          UNTIL ( OK_File ) OR ( LENGTH( Capture_File_Name ) = 0 );
  103.  
  104.          IF LENGTH( Capture_File_Name ) > 0 THEN
  105.             BEGIN
  106.  
  107.                ASSIGN ( Capture_File, Capture_File_Name );
  108.                   (*$I-*)
  109.                IF File_Exists THEN
  110.                   APPEND ( Capture_File )
  111.                ELSE
  112.                   REWRITE( Capture_File );
  113.                   (*$I+*)
  114.  
  115.                IF Int24Result <> 0 THEN
  116.                   BEGIN
  117.                      WRITELN('Can''t open ',Capture_File_Name,' for output.');
  118.                      WRITELN('Capture will not be done.');
  119.                   END
  120.                ELSE
  121.                   BEGIN
  122.  
  123.                      IF ( LENGTH( Capture_Type ) <= 0 ) THEN
  124.                         Capture_Type := ' ';
  125.  
  126.                      CASE Capture_Type[1] OF
  127.                         'U':  Exact_Capture := TRUE;
  128.                         'E':  Exact_Capture := FALSE;
  129.                         ELSE
  130.                            WRITELN;
  131.                            Exact_Capture := NOT YesNo('Perform edited capture? ');
  132.                            WRITELN;
  133.                      END (* CASE *);
  134.  
  135.                      IF Exact_Capture THEN
  136.                         WRITELN('Unedited capture to file ',Capture_File_Name )
  137.                      ELSE
  138.                         WRITELN('Edited Capture to file ',Capture_File_Name );
  139.  
  140.                      Capture_On := TRUE;
  141.  
  142.                   END;
  143.  
  144.                DELAY  ( One_Second_Delay  );
  145.  
  146.             END (* Length( Capture_File_Name ) > 0 *);
  147.  
  148.       END  (* Capture mode was OFF *);
  149.  
  150.    Restore_Screen( Saved_Screen );
  151.    Reset_Global_Colors;
  152.  
  153. END   (* Get_Capture_File *);
  154.